// @flow
import React, { Component } from 'react'
import styles from './GlobalTabs.css'
import universalFetch, { handleFetchError } from 'store/modules/fetch'
import { Tabs } from 'antd'
import ChildTabs from './ChildTabs'
const TabPane = Tabs.TabPane
type Props = {
  saveGroupId: Function,
  saveDeviceData: Function,
  history: Object,
  close: Function
}
type State = {
  location: Array<Object>,
  industry: Array<Object>
}
export class GlobalTabs extends Component {
  state: State
  handleClick: Function
  getCondition: Function
  constructor (props: Props) {
    super(props)
    this.state = {
      location: [],
      industry: []
    }
    this.getCondition = this.getCondition.bind(this)
    this.handleClick = this.handleClick.bind(this)
  }
  handleClick (e: Object) {
    // console.log('click', e)
  }
  componentWillMount () {
    this.getCondition()
  }
  getCondition () {
    const types = ['location', 'industry']
    // $FlowFixMe
    universalFetch(`${__SERVICE_API__}device/conditions?types=${types}`)
      .then((res) => res.json())
      .then((json) => {
        if (json.code !== 200000) {
          throw new Error(JSON.stringify({ code: json.code, message: json.message }))
        }
        const result = json.result
        this.setState({
          location:result.location,
          industry:result.industry
        })
      })
      .catch((error) => {
        handleFetchError(error)
        console.error(error)
      })
  }
  render () {
    const { location, industry } = this.state
    const { history, saveGroupId, saveDeviceData } = this.props
    return (
      <div className={styles['tabsCon']}>
        <Tabs
          defaultActiveKey='location'
          tabPosition='left'
          onChange={this.handleClick}
        >
          <TabPane tab={<span>地区</span>} key='location'>
            <ChildTabs type='location' data={location}
              history={history} saveGroupId={saveGroupId} saveDeviceData={saveDeviceData} close={this.props.close} />
          </TabPane>
          <TabPane tab={<span>行业</span>} key='industry'>
            <ChildTabs type='industry' data={industry}
              history={history} saveGroupId={saveGroupId} saveDeviceData={saveDeviceData} close={this.props.close} />
          </TabPane>
        </Tabs>
      </div>
    )
  }
}

export default GlobalTabs
